extern VOID PtOpenAdapterComplete(IN NDIS_HANDLE	ProtocolBindingContext,
								  IN NDIS_STATUS	Status,
								  IN NDIS_STATUS	OpenErrorStatus);

extern VOID PtCloseAdapterComplete(IN NDIS_HANDLE	ProtocolBindingContext,
								   IN NDIS_STATUS	Status);

extern VOID PtResetComplete(IN NDIS_HANDLE	ProtocolBindingContext,
							IN NDIS_STATUS	Status);

extern VOID PtRequestComplete(IN NDIS_HANDLE	ProtocolBindingContext,
							  IN PNDIS_REQUEST	NdisRequest,
							  IN NDIS_STATUS	Status);

extern VOID PtStatus(IN NDIS_HANDLE	ProtocolBindingContext,
					 IN NDIS_STATUS	GeneralStatus,
					 IN PVOID	StatusBuffer,
					 IN	UINT	StatusBufferSize);

extern VOID PtStatusComplete(IN NDIS_HANDLE	ProtocolBindingContext);

extern VOID PtSendComplete(IN NDIS_HANDLE	ProtocolBindingContext,
						   IN PNDIS_PACKET	Packet,
						   IN NDIS_STATUS	Status);

extern VOID PtTransferDataComplete(IN NDIS_HANDLE	ProtocolBindingContext,
								   IN PNDIS_PACKET	Packet,
								   IN NDIS_STATUS	Status,
								   IN UINT			BytersTransferred);

extern NDIS_STATUS	PtReceive(IN NDIS_HANDLE	ProtocolBindingContext,
							  IN NDIS_HANDLE	MacReceiveContext,
							  IN PVOID			HeaderBuffer,
							  IN UINT			HeaderBufferSize,
							  IN PVOID			LookAheadBuffer,
							  IN UINT			LookAheadBufferSize,
							  IN UINT			PacketSize);

extern VOID	PtReceiveComplete(IN NDIS_HANDLE	ProtocolBindingContext);

extern INT	PtReceivePacket(IN NDIS_HANDLE	ProtocolBindingContext,
							IN PNDIS_PACKET	Packet);

extern VOID	PtBindAdapter(OUT PNDIS_STATUS		Status,
						  IN NDIS_HANDLE		BindContext,
						  IN PNDIS_STRING		DeviceName,
						  IN PVOID				SystemSpecific1,
						  IN PVOID				SystemSpecific2);

extern VOID	PtUnbindAdapter(OUT PNDIS_STATUS	Status,
							IN NDIS_HANDLE		ProtocolBindingContext,
							IN NDIS_HANDLE		UnbindContext);

extern NDIS_STATUS PtPNPHandler(IN NDIS_HANDLE	ProtocolBindingContext,
								IN PNET_PNP_EVENT	pNetPnPEvent);

VOID	PtUnload(IN PDRIVER_OBJECT	DriverObject);

VOID	PtUnloadProtocol(VOID);

NDIS_STATUS	PtPnPNetEventReconfigure(IN PADAPT	pAdapt,
									 IN PNET_PNP_EVENT	pNetPnPEvent);

NDIS_STATUS	PtPnPNetEventSetPower(IN PADAPT	pAdapt,
								  IN PNET_PNP_EVENT	pNetPnPEvent);

INT CopyPacketToMyBuffer(IN PNDIS_PACKET    src_packet, IN PADAPT pAdapt);

PVOID BuildNdisPacket(IN OUT PNDIS_PACKET *pPacket,
                      IN PADAPT open,
                      IN ULONG size);

UINT BuildReadPacketList(IN PADAPT adapt);
